In conventional Finite Impulse Response (FIR) digital filter configurations, as a result of interpolation of an input signal, high-order images are generated at multiples of the interpolation sampling rate. Such conventional “unitary” filters that seek to provide the combined goals of superior filter characteristics (stop band, passband, transition band) with needed suppression of the high-order images, are complicated in configuration, as they require high-order design, and are therefore expensive to implement.
For this reason, a new “compound” filter configuration has recently evolved, wherein the interpolation and suppression functions are partitioned into separate filters: a first portion, referred to as the interpolation, or “F”, filter, being optimized for superior frequency discrimination characteristics; and a second portion, referred to as the masking, image suppression, or “G”, filter, being optimized to suppress higher order images. The resulting compound transfer function of the F and G components provides superior overall filter characteristics using two relatively lower-order filters. By distributing the F and G functions, and optimizing each individually, the performance of the collective configuration is at least comparable to that of conventional unitary configurations, while simplifying hardware complexity, as lower-order filters can be employed.
FIG. 1A is a schematic block diagram of a contemporary compound high-pass FIR filter. Digital data is received at input 26. The data is processed by an interpolation filter 20 whose transfer function F is represented by the following relationship:                               y          ⁢                                           ⁢                      f            ⁡                          [              n              ]                                      =                              ∑            kf                    ⁢                      (                          h              ⁢                                                           ⁢                              f                ⁡                                  [                                      k                    ⁢                                                                                   ⁢                    f                                    ]                                            ×                              x                ⁡                                  [                                      n                    -                                          (                                              N                        ×                        k                        ⁢                                                                                                   ⁢                        f                                            )                                                        ]                                                      )                                              (        1        )            where x(n) represents the input data, hf represents impulse response coefficients for the F filter, kf represents the coefficient count for the F filter, N represents the interpolation value for the F filter; and yf[n] represents data output from the F filter.
Data 28 output from the interpolation filter 20 is processed by a masking filter 22 whose transfer function G is represented by the following relationship:                               y          ⁢                                           ⁢                      g            ⁡                          [              n              ]                                      =                              ∑                          k              ⁢                                                           ⁢              g                                ⁢                      (                          h              ⁢                                                           ⁢                              g                ⁡                                  [                                      k                    ⁢                                                                                   ⁢                    g                                    ]                                            ×                              x                ⁡                                  [                                      n                    -                                          k                      ⁢                                                                                           ⁢                      g                                                        ]                                                      )                                              (        2        )            where x(n) represents data input to the G filter, hg represents impulse response coefficients for the G filter; kg represents the coefficient count for the G filter; and yg[n] represents data output from the G filter.
A feed forward path in the form of a subtractor 30, with delay function 24, is configured as shown in FIG. 1A to provide for alternative frequency discrimination settings (e.g., high-pass, band pass, band stop, etc. ) in the FIR filter. Otherwise, as shown in FIG. 1B, absent the subtractor 30 and the feed forward path, the FIR filter operates as a low-pass filter.
It can be seen in the above Equations 1 and 2 that each iteration of the summation requires a multiplication operation, which can be costly in terms of processing time and hardware complexity. As explained above, the compound filter configuration distributes the interpolation and masking processes into separate F and G functions, which reduces complexity of each separate function, as compared to the conventional combined function. For this reason, the F and G filters are relatively low-order, and therefore have a relatively lower number of impulse response coefficients hf, hg, referred to in the art as “taps”. With relatively fewer taps, the filter functions rely on fewer multiplication operations, and therefore processing time is improved, and hardware complexity is reduced .
While offering the above advantages, current compound filter configurations employ F and G filters that are limited to fixed coefficients. For this reason, the overall filter transfer function is fixed at the time of fabrication, and therefore the filter is not adaptable to variances in environment or data. In addition, the overall system throughput is limited by the filter having the highest number of taps.